#include <STC15F2K60S2.H>
#include <seg.h>

// 数码管显示内容的编码表：共阳极数码管，0-9，-，.
// 0-9 10 11 12 13 14 15
// 0-9 灭  A  -  P  U  C
// 
code unsigned char seg_table[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92,
                                 0x82, 0xf8, 0x80, 0x90, 0xff, 0x88,
0xbf,0x8c,0xc1,0xc6};//11-A,12--,13-P,14-U,15-C

/**
 * @brief 数码管显示函数
 * @param no 数码管编号，从0开始
 * @param what 要显示的内容，0-9
 * @param showpoint 是否显示小数点，0-不显示，1-显示
 */
void seg_display(unsigned char no,unsigned char  what,unsigned char showPoint){
    // 消隐
  P0 = 0xff;
  P2 = P2 & 0x1f | 0xe0;
  P2 &= 0x1f;

  // 位选
  P0 = 0x01 << no;
  P2 = P2 & 0x1f | 0xc0;
  P2 &= 0x1f;

  // 段选
  P0 = seg_table[what];
  if (showPoint) P0 &= 0x7f;
  P2 = P2 & 0x1f | 0xe0;
  P2 &= 0x1f;

}
